import router from '@/router'
import {getToken, removeToken} from "@/store/token";
import {Message} from "element-ui";

export default function () {
    let setInterval = null;//定时器
    let timeOut = 3600 * 1000 // 设置超时时间: 30分钟
    // console.log("开始", new Date().getTime())
    // 初次向sessionStorage存入操作时间
    window.sessionStorage.setItem('lastTime', new Date().getTime())
    // 每次操作页面，更新sessionStorage存入的操作时间
    window.onload = function () {
        window.document.onmousedown = function () {
            //console.log("开始", new Date().getTime())
            window.sessionStorage.setItem('lastTime', new Date().getTime())
        }
    }

    function checkTimeout() {
        if (getToken("Authorization") != null) {
            let currentTime = new Date().getTime() // 当前时间
            let lastTime = window.sessionStorage.getItem("lastTime")//上次操作的时间
            // 判断是否超时
            if (currentTime - lastTime >= timeOut) {
                //console.log("结束", new Date().getTime())
                // 清除定时器
                window.clearInterval(setInterval);
                // 清除sessionStorage
                window.sessionStorage.clear('lastTime')
                //清除登录信息
                removeToken('Authorization');
                removeToken("user")
                removeToken("role")
                removeToken("tokenStartTime")
                Message.error("长时间未操作，已退出登录")
                // 跳到登陆页
                if (router.history.current.fullPath !== '/' && router.history.current.fullPath !== '/login') {
                    router.push({path: '/'})
                    window.location.reload()
                }
            }
        }
    }

    /* 定时器 间隔2秒检测是否长时间未操作页面 */
    setInterval = window.setInterval(checkTimeout, 2000)
}
